﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QuanLyQuanCafe.DataAccess;
using QuanLyQuanCafe.BusinessObject;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace QuanLyQuanCafe.BusinessLogic
{
    class NguyenLieuBL
    {
        KetNoiDuLieu connect = new KetNoiDuLieu();
        public DataTable DSNguyenLieu()
        {
            string sql = "SELECT * FROM NGUYENLIEU";
            return connect.LayDanhSachDuLieu(sql);
        }

        public DataTable DSNguyenLieuDVT()
        {
            string sql = "SELECT NGUYENLIEU.MaNL,NGUYENLIEU.TenNL, NGUYENLIEU.SoLuongTon, DVT.TenDVT FROM DVT,NGUYENLIEU WHERE NGUYENLIEU.DVT = DVT.MaDVT";
            return connect.LayDanhSachDuLieu(sql);
        }
       

        public bool CheckNguyenLieu(int value)
        {
            if (connect.KiemTraGiaTriInt("NGUYENLIEU", "MaNL", value))
                return true;
            return false;
        }

       
        public bool ThemNguyenLieu(NguyenLieuBO nguyenlieuBO)
        {
            if (TestSave(nguyenlieuBO))
            {
                string sql = string.Format("INSERT INTO NGUYENLIEU VALUES ('{0}', N'{1}', '{2}', '{3}')", nguyenlieuBO.MaNL, nguyenlieuBO.TenNL, nguyenlieuBO.SoLuongTon, nguyenlieuBO.DVT);
                if (connect.ExecuteQuery(sql))
                {
                    MessageBox.Show("Thêm Thành Công", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return true;
                }
            }
            return false;
        }

        public bool SuaNguyenLieu(NguyenLieuBO nguyenlieuBO)
        {
            if (TestSave(nguyenlieuBO))
            {
                string sql = string.Format("UPDATE NGUYENLIEU SET TenNL = N'{0}', SoLuongTon = '{1}', DVT='{2}' " + "WHERE MaNL = '{3}'", nguyenlieuBO.TenNL, nguyenlieuBO.SoLuongTon, nguyenlieuBO.DVT, nguyenlieuBO.MaNL);
                if (connect.ExecuteQuery(sql))
                {
                    MessageBox.Show("Sửa Thành Công", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return true;
                }
            }
            return false;
        }

        public bool XoaNguyenLieu(string value)
        {
            string sql = string.Format("DELETE FROM NGUYENLIEU WHERE MaNL = '" + value + "'");
            if (connect.ExecuteQuery(sql))
            {
                MessageBox.Show("Xóa Thành Công", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return true;
            }
            return false;
        }

        public bool TestSave(NguyenLieuBO nguyenlieuBO)
        {
            if (nguyenlieuBO.MaNL.Equals(""))
            {
                MessageBox.Show("Mã Nguyên Liệu Không Hợp Lệ", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (nguyenlieuBO.TenNL.Equals(""))
            {
                MessageBox.Show("Tên Nguyên Liệu Không Hợp Lệ", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }

            if (nguyenlieuBO.SoLuongTon < 0)
            {
                MessageBox.Show("Số Lượng Tồn Không Nhỏ Hơn 0", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            return true;
        }

    }
}
